SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO





CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q07]
/*-------------------------------------------------------------------*/
/*----- Empresa           : OFISIS S.A.                          ----*/
/*----- Cliente           : OFISIS S.A.                          ----*/
/*----- Sistema           : Contabilidad                         ----*/
/*----- Modulo            : Empresa                              ----*/
/*----- Programa          : Mayor General Resumido por Operacion ----*/
/*----- Nombre            : SP_TXMVTO_CNTB_Q27                   ----*/
/*----- Script            : TXMVTO_CNTB                          ----*/
/*----- Desarrollado por  : Martin Garcia Farfan                 ----*/
/*----- Fecha             : 28/05/1998                           ----*/
/*----- Base de Datos     : MS SQL Server                        ----*/
/*----- Version BD        : 6.5                                  ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- Drop proc SP_TXMVTO_CNTB_Q07                             ----*/
/*----- Grant all on SP_TXMVTO_CNTB_Q07 to PUBLIC                ----*/
/*----- exec SP_TXMVTO_CNTB_Q07 '01', 1, 2002, 3, 'DOL', '01211', '12101'   ----*/
/*-------------------------------------------------------------------*/

@ISCO_EMPR		TD_VC_002,
@INNU_CNTB_EMPR		TD_IN_001_CONT,
@INNU_ANNO		TD_IN_004_ANNO,
@INNU_MESE		TD_IN_002_MESE,
@ISCO_MONE		TD_VC_003,
@ISCO_CNTA_EMP1		TD_VC_020_CNTA,
@ISCO_CNTA_EMP2		TD_VC_020_CNTA

As
Declare
 @VSCO_MONE_CONT  TD_VC_003,
 @VNNV_INFO_CNTA  TD_IN_001,
 @CSCO_CNTA       TD_VC_020_CNTA,
 @CSNO_CNTA       TD_VC_050,
 @CNIM_CARG       TD_NU_016_004,
 @CNIM_ABON       TD_NU_016_004


Create Table #TWMVTO_CNTB_Q07_1
(CO_CNTA_EMPR      VarChar(20) NULL,
 DE_CNTA_EMPR	   VarChar(50) NULL, 
 TO_CARG	   Numeric(16,4)    NULL,
 TO_ABON	   Numeric(16,4)    NULL,
 CO_OPRC_CNTB	   Char(03) NULL, 
 DE_OPRC           VarChar(50) NULL,  
 IM_MVTO_DEBE      Numeric(16,4)    NULL, 
 IM_MVTO_HABE	   Numeric(16,4)    NULL)
 


 Select @VSCO_MONE_CONT = CO_MONE 
 From TTCNTB_EMPR 
 Where  CO_EMPR      = @ISCO_EMPR And
        NU_CNTB_EMPR = @INNU_CNTB_EMPR

 Select @VNNV_INFO_CNTA = NV_INFO_CNTA 
 From TMPARA_CONT
 Where CO_EMPR = @ISCO_EMPR
   
    If @ISCO_MONE = @VSCO_MONE_CONT
     Begin
      Declare CU_TXMVTO_CNTB_Q07_1 Cursor
	     For
/*              Select    CUENTA = T2.CO_CNTA_EMPR, NOMBRE = RTRIM(T2.DE_CNTA_EMPR),
                        CARGO_SOLES = Isnull(SUM(Isnull(T1.IM_CARG_CNTB, 0)), 0), 
                        ABONO_SOLES = Isnull(SUM(Isnull(T1.IM_ABON_CNTB, 0)), 0)
                From    TASALD_EMPR T1, TMPLAN_EMPR T2
		Where	T2.CO_EMPR      = @ISCO_EMPR and
			T2.NU_ANNO	= @INNU_ANNO and
                        T2.CO_CNTA_EMPR Between @ISCO_CNTA_EMP1 And @ISCO_CNTA_EMP2 And
			T1.CO_EMPR      = T2.CO_EMPR and
			T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
			T1.NU_ANNO	= T2.NU_ANNO and
	 		T1.NU_MESE	= @INNU_MESE - 1 and
                        DATALENGTH(RTRIM(T1.CO_CNTA_EMPR)) = @VNNV_INFO_CNTA and
                        T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR and
                        T1.TI_AUXI_EMPR IS NULL 
                Group By T2.CO_CNTA_EMPR, T2.DE_CNTA_EMPR
                Order By T2.CO_CNTA_EMPR */
		Select  CUENTA = T2.CO_CNTA_EMPR, NOMBRE = RTRIM(T2.DE_CNTA_EMPR),
                        CARGO_SOLES = Isnull(SUM(Isnull(T1.IM_CARG_CNTB, 0)), 0), 
                        ABONO_SOLES = Isnull(SUM(Isnull(T1.IM_ABON_CNTB, 0)), 0)
                From    TASALD_EMPR T1, TMPLAN_EMPR T2
		Where	T2.CO_EMPR      = @ISCO_EMPR and
			T2.NU_ANNO	= 9999 and
                        T2.CO_CNTA_EMPR Between @ISCO_CNTA_EMP1 And @ISCO_CNTA_EMP2 And
			T1.CO_EMPR      = T2.CO_EMPR and
			T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
			T1.NU_ANNO	= @INNU_ANNO and
	 		T1.NU_MESE	= @INNU_MESE - 1 and
                        DATALENGTH(RTRIM(T1.CO_CNTA_EMPR)) = @VNNV_INFO_CNTA and
                        T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR and
                        T1.TI_AUXI_EMPR IS NULL 
                Group By T2.CO_CNTA_EMPR, T2.DE_CNTA_EMPR
                Order By T2.CO_CNTA_EMPR
/*              Select    CUENTA = T2.CO_CNTA_EMPR, NOMBRE = RTRIM(T2.DE_CNTA_EMPR),
                        CARGO_SOLES = Isnull(SUM(Isnull(T1.IM_CARG_ORIG, 0)), 0), 
                        ABONO_SOLES = Isnull(SUM(Isnull(T1.IM_ABON_ORIG, 0)), 0)
                From    TASALD_EMPR T1, TMPLAN_EMPR T2
		Where	T2.CO_EMPR      = @ISCO_EMPR and
			T2.NU_ANNO	= 9999 and
                        T2.CO_CNTA_EMPR Between @ISCO_CNTA_EMP1 And @ISCO_CNTA_EMP2 And
                        T2.CO_MONE     != @VSCO_MONE_CONT and
			T1.CO_EMPR      = T2.CO_EMPR and
			T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
			T1.NU_ANNO	= @INNU_ANNO and
	 		T1.NU_MESE	= @INNU_MESE -1  and
                        DATALENGTH(RTRIM(T1.CO_CNTA_EMPR)) = @VNNV_INFO_CNTA and
                        T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR and
                        T1.TI_AUXI_EMPR IS NULL
                Group By T2.CO_CNTA_EMPR, T2.DE_CNTA_EMPR
                Order By T2.CO_CNTA_EMPR
*/


        Open CU_TXMVTO_CNTB_Q07_1
        Fetch CU_TXMVTO_CNTB_Q07_1 Into @CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON
        While @@Fetch_status = 0
	Begin


          Insert Into #TWMVTO_CNTB_Q07_1(CO_CNTA_EMPR, DE_CNTA_EMPR, 
               TO_CARG, TO_ABON, CO_OPRC_CNTB, DE_OPRC, IM_MVTO_DEBE, IM_MVTO_HABE)
         	Select	@CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON, T1.CO_OPRC_CNTB, T3.DE_OPRC,
                        (ASCII(T1.TI_OPER)/67) * T1.IM_MVTO_CNTB,
                        (65/ASCII(T1.TI_OPER)) * T1.IM_MVTO_CNTB
                        From TMPLAN_EMPR T2,TXMVTO_CNTB T1, TMOPRC_CNTB T3
			Where	(T2.CO_EMPR = @ISCO_EMPR and
				T2.NU_ANNO = 9999 and
                                T2.CO_CNTA_EMPR = @CSCO_CNTA and
				T1.CO_EMPR = T2.CO_EMPR and
				T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR and
				T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
				T1.NU_ANNO = @INNU_ANNO and
				T1.NU_MESE = @INNU_MESE and
				T1.SI_MVTO_CNTB = 'APR' and 
                                T3.CO_EMPR = T1.CO_EMPR  and 
                                T3.CO_OPRC_CNTB = T1.CO_OPRC_CNTB )
 
/*           if ((@CNIM_CARG != 0) or (@CNIM_ABON != 0))
             if @@rowcount = 0
	          Insert Into #TWMVTO_CNTB_Q07_1(CO_CNTA_EMPR, DE_CNTA_EMPR, 
        	       TO_CARG, TO_ABON, CO_OPRC_CNTB, DE_OPRC, IM_MVTO_DEBE, IM_MVTO_HABE)
                    values(@CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON,
                           NULL, NULL, NULL, NULL)  */
              
         Fetch CU_TXMVTO_CNTB_Q07_1 Into @CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON
	End
      End
     Else
      Begin
       Declare CU_TXMVTO_CNTB_Q07_1 Cursor
	     For
              Select    CUENTA = T2.CO_CNTA_EMPR, NOMBRE = RTRIM(T2.DE_CNTA_EMPR),
                        CARGO_SOLES = Isnull(SUM(Isnull(T1.IM_CARG_ORIG, 0)), 0), 
                        ABONO_SOLES = Isnull(SUM(Isnull(T1.IM_ABON_ORIG, 0)), 0)
                From    TASALD_EMPR T1, TMPLAN_EMPR T2
		Where	T2.CO_EMPR      = @ISCO_EMPR and
			T2.NU_ANNO	= 9999 and
                        T2.CO_CNTA_EMPR Between @ISCO_CNTA_EMP1 And @ISCO_CNTA_EMP2 And
                        T2.CO_MONE     != @VSCO_MONE_CONT and
			T1.CO_EMPR      = T2.CO_EMPR and
			T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
			T1.NU_ANNO	= @INNU_ANNO and
	 		T1.NU_MESE	= @INNU_MESE -1  and
                        DATALENGTH(RTRIM(T1.CO_CNTA_EMPR)) = @VNNV_INFO_CNTA and
                        T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR and
                        T1.TI_AUXI_EMPR IS NULL
                Group By T2.CO_CNTA_EMPR, T2.DE_CNTA_EMPR
                Order By T2.CO_CNTA_EMPR
        Open CU_TXMVTO_CNTB_Q07_1
        Fetch CU_TXMVTO_CNTB_Q07_1 Into @CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON
        While @@Fetch_status = 0
	Begin
          Insert Into #TWMVTO_CNTB_Q07_1(CO_CNTA_EMPR, DE_CNTA_EMPR, 
               TO_CARG, TO_ABON,  CO_OPRC_CNTB, DE_OPRC, IM_MVTO_DEBE, IM_MVTO_HABE)
         	Select	@CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON, T1.CO_OPRC_CNTB, T3.DE_OPRC,
                        (ASCII(T1.TI_OPER)/67) * T1.IM_MVTO_ORIG,
                        (65/ASCII(T1.TI_OPER)) * T1.IM_MVTO_ORIG
                        From TXMVTO_CNTB T1, TMPLAN_EMPR T2, TMOPRC_CNTB T3
			Where	(T2.CO_EMPR = @ISCO_EMPR and
           			T2.NU_ANNO = 9999 and
                                T2.CO_CNTA_EMPR = @CSCO_CNTA and
				T1.CO_EMPR = T2.CO_EMPR and
				T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR and
				T1.NU_ANNO = @INNU_ANNO and
				T1.NU_MESE = @INNU_MESE and
				T1.CO_CNTA_EMPR = T2.CO_CNTA_EMPR and
				T1.SI_MVTO_CNTB = 'APR' and
                                T3.CO_EMPR = T1.CO_EMPR  and
         T3.CO_OPRC_CNTB = T1.CO_OPRC_CNTB )
 
/*           if ((@CNIM_CARG != 0) or (@CNIM_ABON != 0))
             if @@rowcount = 0
	          Insert Into #TWMVTO_CNTB_Q07_1(CO_CNTA_EMPR, DE_CNTA_EMPR, 
    	       TO_CARG, TO_ABON, CO_OPRC_CNTB, DE_OPRC, IM_MVTO_DEBE, IM_MVTO_HABE)
                    values(@CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON,
                           NULL, NULL, NULL, NULL)  */
         Fetch CU_TXMVTO_CNTB_Q07_1 Into @CSCO_CNTA, @CSNO_CNTA, @CNIM_CARG, @CNIM_ABON
        End 
     End
   Close CU_TXMVTO_CNTB_Q07_1
   Deallocate CU_TXMVTO_CNTB_Q07_1
 Select CO_CNTA_EMPR, DE_CNTA_EMPR,  TO_CARG, TO_ABON, CO_OPRC_CNTB, DE_OPRC, 
     Isnull(sum(Isnull(IM_MVTO_DEBE, 0)), 0), Isnull(sum(Isnull(IM_MVTO_HABE, 0)), 0) 
 From #TWMVTO_CNTB_Q07_1
 Group By  CO_CNTA_EMPR,  DE_CNTA_EMPR, TO_CARG, TO_ABON, CO_OPRC_CNTB, DE_OPRC
 Order By CO_CNTA_EMPR
 Return
/*---------------------------------- Fin ----------------------------------------*/








GO
